GR, or smooth restart, is a redundant fault-tolerant technology. It is currently applied widely in active-standby switching and system upgrade. The GR ensures normal forwarding of data when the routing protocol is restarted in order to prevent interruption of key services.
The prerequisite of the GR is that the technology of separating control from forwarding is applied in the routing device. In a routing device with a multi-Route Processor (RP) structure, the processor responsible for routing protocol control is located in the main control board. Specifically, the main control board manages the information in the Forwarding Information Base (FIB). At the same time, the processor responsible for forwarding data is located on the interface board. It accomplishes the effect of guiding the data forwarding only when the FIB information is delivered and stored onto the interface board. On the basis of the multi-RP, the GR process of the routing device is as follows:
(1) When the routing device creates a connection initially, the GR capabilities of the routing device are notified among the local routing device and the neighbor routing device. The GR capabilities include: restart state, restart time, and forwarding state of Address Family Identifier (AFI) and Subsequent Address Family Identifier (SAFI).
(2) When the local routing device is restarted, namely, when the main control board in the local routing device is restarted or switching occurs between the active main control board and the standby main control board, the route information is stored in the FIB on the interface board. Therefore, the local routing device keeps the neighbor relation with the neighbor routing device and goes on forwarding data.
(3) After being restarted, the local routing device is reconnected with the neighbor routing device, and the neighbor routing device sends the stored route information to the restarted local device.
After being restarted, the local routing device may need to be reconnected with multiple neighbor routing devices. If only one path leads to the same destination address, this path is the best route. If multiple paths lead to the same destination address, the local routing device receives different routes from different neighbor routing devices. In this case, the local routing device needs to select a route. The selected route is loaded onto the FIB of the main control board. The main control board delivers the route information in it's FIB to the FIB of the interface board, and the interface board forwards the data according to the updated route information in the FIB.
(4) The local device sends the updated route information to the neighbor routing device, and the neighbor routing device updates the route information. By now, the route convergence after restart of the local device has been completed.
When the restarted routing device has a neighbor routing device, the restarted routing device begins to select a route after receiving the route information from the neighbor routing device, and delivers the selected route through the main control board to the FIB of the interface board, thus guiding the data forwarding. However, when the restarted routing device has multiple neighbor routing devices, if such a method is still applied, it is possible that the restarted routing device has not received the route information of each neighbor routing devices by now and the route selected at this time is not the best. This may ultimately lead to route oscillation.
Specifically, as shown in FIG. 1, it is assumed that the routing device R4 receives the route information of R1 from the neighbor routing devices R2 and R3 after being restarted. Before R4 is restarted, the R1 route sent by R2 is preferred. However, during restart of R4, it is possible that R3 sends the R1 route to R4 first, and then R2 sends the R1 route to R4 later. Consequently, R4 prefers the R1 route sent by R3, and delivers the route to the interface board of R4, thus guiding data forwarding. R4 reselects the R1 route sent by R2 after receiving the R1 route sent by R2, and delivers the route to the interface board of R4, thus guiding the data forwarding. This process leads to interruption of the data forwarding. Moreover, R4 notifies the neighbor routing devices R2 and R1 of the route sent by the newly selected R2, which leads to route oscillation in the network.
Currently, in order to solve the foregoing problems, the restarted routing device is required to select the route only after receiving the routes of each of the neighbor routing devices (namely, after all routes have converged), thus avoiding route oscillation and interruption of data forwarding.
Such a practice avoids route oscillation and interruption of data forwarding in the process of restarting the routing device. However, the restarted routing device selects the route only after receiving the route information of each of the neighbor routing devices. Consequently, when the quantity of routes is large, the time it takes to select the route increases, affecting the speed of route convergence.